home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / ien / ien-103 < prev    next >
Text File  |  1988-12-01  |  19KB  |  469 lines

  1.  
  2.  
  3.  
  4. Date:  May 4, 1979                                      IEN 103
  5.  
  6. An Experimental Network Information Center Name Server (NICNAME)
  7.  
  8. J. R. Pickens, E. J. Feinler, and J. E. Mathis - SRI
  9.  
  10.  
  11.  
  12. Introduction
  13.  
  14.   This IEN reports a preliminary design and implementation of an
  15. experimental NIC-based name server.  A name server is essentially a
  16. transaction based inquiry-response process which returns information
  17. on entities which can be named or addressed--hosts in this particular
  18. case.  The Arpanet Network Information Center (NIC) maintains and
  19. distributes the Official Host Table [1] for the Arpanet, as well as a
  20. variety of other related information.
  21.  
  22.   The motivation for this development comes both from current needs in
  23. the Arpanet community for such a service, and from the similar but
  24. wider needs of the burgeoning Internet community.  Existing Arpanet
  25. needs are exemplified by the NIC charter to provide formatted Host
  26. Table information [1].  Existing Internet needs are exemplified by the
  27. need for terminal interface units (TIUs) on ANY network to have
  28. dynamic access to addresses of internet service hosts.
  29.  
  30.   A name server service, as described herein, will permit more
  31. efficient access to, and distribution of, host information within the
  32. Arpanet.  It can also support a need for host information, especially
  33. pertaining to the Arpanet, from the Internet environment.
  34.  
  35.   The name server function is evolving.  Before much of what is
  36. proposed can be provided, or even agreed upon, additional
  37. administrative and technical design decisions are required.  The
  38. purpose of this note, therefore, is to catalyze an expanded discussion
  39. of the functions and facilities for the name server service.
  40.  
  41.   The discussion is structured as follows:  Section 1 contains a
  42. description of the current service and how it is derived from the NIC
  43. database service.  Section 2 describes possible extensions of the name
  44. server concept by allowing a richer syntax, and by allowing queries
  45. for services to be built on top of the queries for host addresses.
  46. Section 3 discusses architectural issues, and presents some
  47. preliminary thinking on how we can get from the current centralized,
  48. hierarchic name server service to a distributed service with one (or
  49. more) name servers per network.
  50.  
  51.  
  52.  
  53. 1. The SRI Name Server Experiment
  54.  
  55.   An experimental name server has been installed on SRI-KA.  It is
  56. accessed via a variant of the Internet Name Server protocol [2].  The
  57.  
  58.                                   1
  59.  
  60.  
  61.  
  62. initial implementation uses the internet header of TCP 2.5 [3] and
  63. will be converted to Internet Version 4 [4] once it becomes available.
  64.  
  65.   The information which drives the name server service originates from
  66. the Arpanet Official Host Table.  (A new host table format suitable
  67. for representing host information for multiple networks has been
  68. designed and will be described in a forthcoming RFC [5]) A massaged
  69. version of this database is presented to the name server, upon program
  70. initiation, as an input file.  Work is in progress to investigate the
  71. feasibility of abstracting host related information from the NIC
  72. database management system via direct system calls.
  73.  
  74.   User access to the service takes two forms.  In the first form, a
  75. simple user process is provided to format user input into name server
  76. requests.  In response to a query of the form "HOST !ARPA!FOO-TENEX"
  77. is returned an address such as "10 2 0 9" (NET=10, HOST=2, LHOST=0,
  78. IMP=9); the details of the user interface will, of course, vary from
  79. system to system.
  80.  
  81.   This first primitive form of name server access has been implemented
  82. on several Arpanet and PRNET sites as PDP-10 TENEX and LSI-11 TIU
  83. programs.  While initially the TENEX program is of little practical
  84. value since all sites have a complete name table, the LSI-11 program
  85. is intended to augment the TIU's host table.  The scenario here is
  86. that when the packet radio TIU comes alive, it contains only a minimal
  87. host table, including the addresses of perhaps a few candidate name
  88. servers.  The user can query the name server with a simple manual
  89. query process and then use the address obtained to open a TELNET
  90. connection to the desired host.
  91.  
  92.   In the second form of access, soon to be operational on packet radio
  93. TIUs, a process-level interface is provided that mediates between
  94. internal processes and the name server.  The design issues for
  95. something other than a demonstration system are complex and involve
  96. tradeoffs.  The most obvious tradeoff is in the area of network
  97. traffic versus "freshness" of information. The local host table
  98. handler can either send a message to the name server for every address
  99. request or it can perform some type of local caching to remember
  100. frequently requested names.  SRI is currently implementing a
  101. process-level interface for the LSI-11 TIU's TELNET program in order
  102. to explore the problems of local host table management in small
  103. machines in a dynamic environment.
  104.  
  105.  
  106.  
  107. 2. Name Server Issues
  108.  
  109.   The name server, as currently specified, provides a simple address
  110. binding service [2].  In response to a datagram query [4, 6], the name
  111. server returns either an address, a list of similar names, or an
  112. error.  Several useful additional functions can be envisioned for the
  113. name server such as service queries and broader access to host related
  114. information.  First, however, a few refinements to the current name
  115.  
  116.                                   2
  117.  
  118.  
  119.  
  120. server specification are proposed.
  121.  
  122.  
  123. 2.1. Refinements
  124.  
  125.   The current specification needs clarification as to how to interpret
  126. the "similar names" error response.  Should there be a fixed
  127. definition of what "similar names" means, or should it be left open to
  128. the whims of the implementor?
  129.  
  130.   This function seems to be most useful in providing helpful
  131. information to a human interfacing process.  It may be useful to model
  132. the behavior of the name server on the behavior of other known
  133. processes which present host-name information on demand.  An example
  134. of this is a common implementation of User Telnet [7], in which three
  135. kinds of functions occur:
  136.  
  137.   1. On termination of name input (e.g. <CR>), the user is only
  138.      "beeped" if the name is not unique.  If the name is unique,
  139.      the name is filled out, and the requested operation is
  140.      initiated.
  141.  
  142.   2. In response to <ESC>, the name will be filled out if unique,
  143.      or the user will get "beeped" if the name is not unique.
  144.  
  145.   3. Only in response to "?" will a list of similar names be
  146.      printed.  "Similar names", in this case, means all names
  147.      which begin with the same character string.  The list is
  148.      alphabetized.
  149.  
  150.   In support of this style of user interface, it may be more
  151. appropriate to return the "similar names" response only when
  152. requested.  Two ways to achieve this are 1) to set an option bit and
  153. 2) to use "?" to force the similar names response.
  154.  
  155.   A second point upon which the specification may be enhanced is in
  156. the interpretation given to null network and host fields in the query
  157. string.  Currently, if the network field is left out, as in "!REST"
  158. (normal query is "!NET!REST"), a local network query is assumed.
  159. "!!REST" and "!NET!" are not discussed in the current specification,
  160. and are presumably syntax errors.
  161.  
  162.   Since host names tend to be unique anyway (at least at the present
  163. time) and since there is no way to make a network independent query
  164. under the current design, it may be useful to add to the notion of
  165. "null field", meaning "local", the notion of a special character like
  166. "*" which means "all".
  167.  
  168.   The semantic range of queries afforded by adopting this convention
  169. is enumerated below (note: ~ is used to mean "null".  Both network and
  170. host fields null ("!!") is, therefore, represented as "~ ~".  N means
  171. "network" and R means "rest"):
  172.  
  173.                                   3
  174.  
  175.  
  176.  
  177. ~ ~             local net, local host (validity check?)
  178.  
  179. ~ *             local net, all hosts
  180.  
  181. ~ R             local net, named host
  182.  
  183. * ~             all nets, local host (inverse search)
  184.  
  185. * *             all nets, all hosts (probably prohibited)
  186.  
  187. * R             all nets, named host (today's situation)
  188.  
  189. N ~             named net, local host (inverse search)
  190.  
  191. N *             named net, all hosts
  192.  
  193. N R             named net, named host
  194.  
  195.   By combining the on-demand-similar-names function, "all" and
  196. "local", and by allowing "*" to be prepended or postpended to the
  197. query string, one can have queries such as the following:
  198.  
  199. !!BBN*?         All hosts named BBN* on local net
  200.  
  201. !*!BBN*?        All hosts named BBN* on all nets
  202.  
  203. !*!*UNIX*?      All hosts named *UNIX* on all nets
  204.  
  205.  
  206. 2.2. Service Queries
  207.  
  208.   It has been suggested that the name server can be generalized into
  209. that of a binding function [8].  In this context, a very useful
  210. extension is to allow service queries.  One very real application of
  211. this service, which exists within the Packet Radio Project at SRI, is
  212. the need to find the addresses of Hosts which support the LoaderServer
  213. Service (the LoaderServer service allows packet radio TIUs to receive
  214. executable programs via down-line loading).
  215.  
  216.   A characteristic of service querying, contrasted to host names
  217. querying, is the need for multiple responses.  The requester would,
  218. upon receiving multiple service descriptors, attempt to establish
  219. access to each service, one-at-a-time, until successful.
  220.  
  221.   Service descriptors are composed of at least the following (with
  222. more items probably required):
  223.  
  224.                                   4
  225.  
  226.  
  227.  
  228.  
  229.      ITEM               TYPE
  230. +------------------+----------------+
  231. | Official Name    |    Text        |
  232. | Alias Names      |    Text        |
  233. +------------------+----------------+
  234. | Host Address     |    Integer(32) |
  235. | Port             |    Integer(32) |  InterNet Services
  236. | Protocol         |    Integer(8)  |
  237. +------------------+----------------+
  238. | Host Address     |    Integer(24) |  Arpanet NCP Services
  239. | Socket           |    Integer(32) |
  240. +------------------+----------------+
  241.  
  242. Syntactically, service queries can be derived from host queries by the
  243. addition of a service name field, as below:
  244.  
  245.                          "!NET!REST!SERVICE"
  246.  
  247.   A network independent service query, for example, can be represented
  248. as:
  249.  
  250.                             "!*!*!SERVICE"
  251.  
  252.  
  253. 2.3. Name Server Options
  254.  
  255.   The need for options has already been suggested in the discussion of
  256. the "similar names" function.  Another group of options may be used to
  257. specify the format of the reply.  At one extreme is the compact,
  258. binary, style, such as is currently specified.  At the other extreme
  259. is an expanded, textual, style, such as would be represented by a host
  260. table record, and with official/alias names included.  Options can be
  261. envisaged which specify:
  262.  
  263.    - binary vs text format
  264.  
  265.    - inclusion of each field in the reply
  266.  
  267.    - inclusion of official name, per field, in the reply
  268.  
  269.    - inclusion of alias names, per field, in the reply
  270.  
  271.    - inclusion of other miscellaneous information, such as
  272.      operating system, machine type, access restrictions, etc.
  273.  
  274. Other options can be envisioned which specify the scope of the search,
  275. such as "ignore TIPS and USER hosts".  Likewise, an alternate form for
  276. specifying formats may be to settle on several standard ones, and
  277. allow an option to select between them.
  278.  
  279.   Certainly, not all name servers will be able to support all such
  280. options, and not all options are equally useful.  Thus, the proposed
  281.  
  282.                                   5
  283.  
  284.  
  285.  
  286. list will be expanded or contracted to fit the actual needs of
  287. processes using the name server service.
  288.  
  289.  
  290. 2.4. "More" Data
  291.  
  292.   It is probably apparent to the discerning reader that several of the
  293. proposed name server extensions have the potential for generating more
  294. than a single datagram's worth of reply (576 octets max [9]).  (Not of
  295. any consolation is the fact that the current practical PRNet Packet
  296. size is on the order of 256 octets.) Yet the size of such replies is
  297. not anticipated to require a full-blown streaming protocol.  Several
  298. alternatives exist:
  299.  
  300.   1. Disallow options which imply large replies,
  301.  
  302.   2. Truncate the packet for large replies,
  303.  
  304.   3. Ignore the recommended maximum datagram size,
  305.  
  306.   4. Utilize an alternate base protocol for such requests,
  307.  
  308.   5. Develop a "more data" pseudo-streaming protocol.
  309.  
  310. Alternative 1 may be chosen, but even within the current specification
  311. the potential for overflow exists (however remote).  Alternative 2
  312. implies unpredictable behaviors to the user of the name server
  313. service.  Alternative 3 reduces the availability of the service.
  314. Alternative 4 is certainly possible, but may be over-kill.
  315.  
  316.   Alternative 5 can be very simple.  The concept is that the name
  317. server would return, as part of the reply, a code of the following
  318. form:
  319.  
  320.                           +------+---------+
  321.                           | MORE | ID_NEXT |
  322.                           +------+---------+
  323.  
  324. ID_NEXT is a name-server-chosen-quantity (1,2,4 octets?),
  325. syntax/semantics unspecified, which allows the name server to find the
  326. next block of reply, the next time it is queried.  This quantity may
  327. be an internal pointer, a block number, or whatever the name server
  328. chooses.  Follow-on queries may be implemented by recomputing the
  329. entire original query, discarding output until the ID_NEXT block is
  330. reached, or by efficiently storing the entire reply in a cache,
  331. fragmented into blocks (with appropriate decay algorithms).
  332.  
  333.  
  334. 2.5. Dynamic Updates
  335.  
  336.   In all of the previous discussions, the host name database was
  337. assumed to be a static (or slowly changing entity) with an
  338. administrative and manual update authority.  This model was
  339.  
  340.                                   6
  341.  
  342.  
  343.  
  344. implemented for expediency and will well serve most of the needs of
  345. the Arpanet and Internet communities.  However, a need can be
  346. envisioned for dynamic automated updating of the host table; (imagine
  347. the impact on the current system of any host who changed its address
  348. more than once a week!)
  349.  
  350.   In a closed user group community (such as a local network of
  351. mutually trusting hosts), dynamic updating becomes simply a technical
  352. question concerning packet formats.  In wider communities, a mechanism
  353. to authenticate the change request must be developed.  Since the
  354. issues on authentication are outside the scope of this paper, we can
  355. only note that significant advances in practical deployment of
  356. dispersed processing and central services, such as automated host
  357. table management, can only be made when the problems of authentication
  358. become tractable.
  359.  
  360.  
  361.  
  362. 3. Architecture
  363.  
  364.   The name server concept is invaluable in allowing hosts with
  365. incomplete knowledge of the network address space to obtain full
  366. access to network services.  Whether for reasons of insufficient
  367. Kernel space or of a dynamically changing environment, the need for
  368. the service is little questioned.  The more significant issues,
  369. however, revolve around the methods for providing the service and for
  370. administering and updating the database.
  371.  
  372.   In the current experiment, the service is centralized, and is
  373. supported by a database administered centrally by the NIC.  In the
  374. long range, other architectures are possible which address ways to
  375. distribute host information within and between networks and
  376. administrative entities.  These present opportunities for more
  377. dynamic, automated, approaches to the maintenance and sharing of
  378. data--particularly host name data.
  379.  
  380.   From an evolutionary point of view, the name server service will
  381. likely exist initially as a centralized service, possibly with one
  382. large name server that has multiple network knowledge.  From this
  383. beginning, an expansion in two orthogonal directions is possible.
  384.  
  385.    - In the direction of internal distribution, the name server
  386.      can be fragmented into multiple cooperating processes, on
  387.      separate hosts.  The data base can be replicated exactly or
  388.      managed as a distributed database.
  389.  
  390.    - In the direction of administrative distribution, multiple
  391.      autonomous name servers may exist which exchange data in an
  392.      appropriately administered fashion, on a per network or
  393.      other administrative basis.
  394.  
  395.   On the part of hosts with small host tables, a possibility for
  396. caching exists, where local, temporary copies are maintained of
  397.  
  398.                                   7
  399.  
  400.  
  401.  
  402. subsets of the addressing database.  Such copies may be obtained
  403. either by remembering previous queries made of name servers, or by
  404. receiving automatic distributions of data from name servers.  For
  405. mobile hosts, in which even the home network is unknown, it is
  406. possible to maintain essentially an empty host table.
  407.  
  408.   The potential exists, with service queries, for every host to
  409. contain a very primitive name server function.  In response to a query
  410. of the form "!*!*!RealNameServer" is returned the address of a real
  411. name server service.
  412.  
  413.   Finally, the possibility exists for multiple name servers to
  414. communicate dynamically, such as in attempting to resolve a query.
  415. If, for example, a name server on the Arpanet receives a query for a
  416. host on the Packet Radio Net, then the Arpanet name server can
  417. conceivably query the Packet radio net name server in order to resolve
  418. the reply.
  419.  
  420.  
  421.  
  422. 4. Conclusion
  423.  
  424.   In this note, a collection of design ideas on the name server
  425. service has been presented.  An experimental service, based on the NIC
  426. host table database has been reported.
  427.  
  428.   A continuing examination of the name server service is encouraged,
  429. scoping out the requirements and specifying its functional
  430. distribution.  A level of service comparable to that outlined
  431. currently [2] will be provided initially, but a more expanded service
  432. merits consideration and discussion.  Certainly many open questions
  433. have been raised in proposing an expansion of the service, but it is
  434. expected that such an expansion will result in more useful support of
  435. internet (and intranet) capability.
  436.  
  437.                                   8
  438.  
  439.  
  440.  
  441. References
  442.  
  443. 1.    M. D. Kudlick and E. J. Feinler, Host Names On-line, RFC 608,
  444.       SRI International, January 1974.
  445.  
  446. 2.    J. Postel, Internet Name Server, IEN 61, USC-Information
  447.       Sciences Institute, October 1978.
  448.  
  449. 3.    V. Cerf, TCP Version 2 Specification, IEN 5, March 1977.
  450.  
  451. 4.    J. Postel, Internet Datagram Protocol, IEN 81, USC-Information
  452.       Sciences Institute, February 1979.
  453.  
  454. 5.    E. J. Feinler, Proposed Official Host Table Format, SRI
  455.       International (RFC in preparation).
  456.  
  457. 6.    D. Reed, J. Postel, User Datagram Protocol, IEN 71,
  458.       USC-Information Sciences Institute, January 1979.
  459.  
  460. 7.    E. Leavitt et al, TENEX USER'S GUIDE, Bolt Beranek and Newman
  461.       Inc.
  462.  
  463. 8.    Y. Dalal, Group discussion, January 24,25 1979 Internet Meeting.
  464.  
  465.  
  466. 9.    J. Postel, Internet Meeting Notes - 25&26 January 1979, pp. 12,
  467.       IEN 76, USC-Information Sciences Institute, February 1979.
  468.  
  469.